18288
13645
Portanto, estou tendo problemas para descobrir o uso adequado de list :: sort () em relação a uma lista de estruturas. Aqui está o código relevante:
estudante de estrutura
{
char firstnm [20],
lastnm [20];
int id,
grau;
};
list  sList;
// Código irrelevante ...
cout << "Por favor, insira seu próprio nome, id e grau. (Ex: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (dados);
sList.sort ();
O problema que estou tentando resolver é usar sList.sort () para classificar por id. No entanto, não tenho ideia de como passá-lo corretamente para list :: sort (). Agradecemos antecipadamente por qualquer ajuda / tempo!
EDIT: A solução foi simplesmente adicionar isso à minha estrutura
operador bool <(const student & cmp) const {
return id 
                                
Você deve dar uma olhada em std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Existem várias definições dessa função, e uma onde você pode especificar o que deseja classificar.
Além disso, dê uma olhada nesse post, acho que é o que você precisa: https://stackoverflow.com/a/21234017/6663947
Editar:
isso é um exemplo de comparador:
sList.sort ([] (const student & a, const student & b) {return a.id 
void sort (Compare comp);
Supondo que você deseja classificar os objetos de aluno em sua lista de acordo com a identificação da chave em ordem crescente. Você pode definir o operador